package com.summer.bilibili.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.summer.bilibili.domain.video.VideoWatchHistory;
import com.summer.bilibili.dto.VideoWatchDto;
import com.summer.bilibili.params.HistorySearch;
import com.summer.bilibili.vo.VideoWatchHistoryVo;


public interface VideoWatchHistoryService extends BaseService < VideoWatchHistory > {
    /**
     * 搜索当前用户在指定视频的观看历史
     */
    VideoWatchHistoryVo getVoByVid ( Long videoId );

    /**
     * 搜索用户的播放历史
     */
    IPage < VideoWatchHistoryVo > search ( HistorySearch params );

    /**
     * 1.记录哪些用户正在播放哪些视频(一个用户可能同时观看多个视频)
     * 2.记录播放位置
     * 3.记录播放时长,需要用户在指定超时时间内发送请求,以此增加间隔时间作为播放时间
     */
    void create ( VideoWatchDto dto );

    /**
     * 删除用户的所有观看历史
     */
    void removeAllByUserId ();

    /**
     * 获取当前用户的观看记录
     */
    VideoWatchHistory getCurrentHistory ( Long vid );
}
